//备注：拷贝代码请加上作者信息
//作者：王海涛
//邮箱：1126471088@qq.com
//版本：V0.1.0
/********************************************************
    说明：
    1、以下这些接口主要用于RGB888与RGB565及大小端之间的格式转换
    2、LE是小端数据 BE是大端数据
    3、RGB888小端格式转换RGB565小端格式
    4、RGB888小端格式转换RGB565大端格式
    5、RGB888大端格式转换RGB565小端格式
    6、RGB888大端格式转换RGB565大端格式
    7、RGB565小端格式转换RGB888小端格式
    8、RGB565小端格式转换RGB888大端格式
    9、RGB565大端格式转换RGB888小端格式
    10、RGB565大端格式转换RGB888大端格式
**********************************************************/
#ifndef __RGB_CONVERT_H__
#define __RGB_CONVERT_H__

/* 常用颜色列举 */
/****************************RGB565************************/
#define RGB565_RED       ((uint16_t)0xF800)    //红色
#define RGB565_MAROON    ((uint16_t)0x7800)    //深红色
#define RGB565_MAGENTA   ((uint16_t)0xF81F)    //品红
#define RGB565_YELLOW    ((uint16_t)0xFFE0)    //黄色
#define RGB565_GREEN     ((uint16_t)0x07E0)    //绿色
#define RGB565_DGREEN    ((uint16_t)0x03E0)    //深绿色
#define RGB565_OLIVE     ((uint16_t)0x7BE0)    //橄榄绿
#define RGB565_BLUE      ((uint16_t)0x001F)    //蓝色
#define RGB565_NAVY      ((uint16_t)0x000F)    //深蓝色
#define RGB565_CYAN      ((uint16_t)0x07FF)    //青色
#define RGB565_DCYAN     ((uint16_t)0x03EF)    //深青色
#define RGB565_PURPLE    ((uint16_t)0x780F)    //紫色
#define RGB565_BLACK     ((uint16_t)0x0000)    //黑色
#define RGB565_DGRAY     ((uint16_t)0x7BEF)    //深灰色
#define RGB565_WHITE     ((uint16_t)0xFFFF)    //白色
#define RGB565_LGRAY     ((uint16_t)0xC618)    //灰白色
/****************************ARGB1555************************/
#define ARGB1555_RED     ((uint16_t)0xFC00)    //红色
#define ARGB1555_MAROON  ((uint16_t)0x7C00)    //深红色  
#define ARGB1555_MAGENTA ((uint16_t)0xF81F)    //品红
#define ARGB1555_YELLOW  ((uint16_t)0xFFE0)    //黄色
#define ARGB1555_GREEN   ((uint16_t)0x03E0)    //绿色
#define ARGB1555_DGREEN  ((uint16_t)0x03C0)    //深绿色
#define ARGB1555_OLIVE   ((uint16_t)0x7BE0)    //橄榄绿
#define ARGB1555_BLUE    ((uint16_t)0x001F)    //蓝色
#define ARGB1555_NAVY    ((uint16_t)0x000F)    //深蓝色
#define ARGB1555_CYAN    ((uint16_t)0x03FF)    //青色
#define ARGB1555_DCYAN   ((uint16_t)0x03EF)    //深青色
#define ARGB1555_PURPLE  ((uint16_t)0x780F)    //紫色
#define ARGB1555_BLACK   ((uint16_t)0x8000)    //黑色 (Alpha=1)
#define ARGB1555_DGRAY   ((uint16_t)0x7BEF)    //深灰色
#define ARGB1555_WHITE   ((uint16_t)0xFFFF)    //白色
#define ARGB1555_LGRAY   ((uint16_t)0xC618)    //灰白色


/*uint32_t RGB888_LE To uint16_t RGB565_LE*/
extern unsigned short RGB888_LE_To_RGB565_LE(unsigned int RGB888_LE);
/*uint32_t RGB888_LE To uint16_t RGB565_BE*/
extern unsigned short RGB888_LE_To_RGB565_BE(unsigned int RGB888_LE);
/*uint32_t RGB888_BE To uint16_t RGB565_LE*/
extern unsigned short RGB888_BE_To_RGB565_LE(unsigned int RGB888_BE);
/*uint32_t RGB888_BE To uint16_t RGB565_BE*/
extern unsigned short RGB888_BE_To_RGB565_BE(unsigned int RGB888_BE);


/*uint16_t RGB565_LE To uint32_t RGB888_LE*/
extern unsigned int RGB565_LE_To_RGB888_LE(unsigned int RGB565_LE);
/*uint16_t RGB565_LE To uint32_t RGB888_BE*/
extern unsigned int RGB565_LE_To_RGB888_BE(unsigned int RGB565_LE);
/*uint16_t RGB565_BE To uint32_t RGB888_LE*/
extern unsigned int RGB565_BE_To_RGB888_LE(unsigned int RGB565_BE);
/*uint16_t RGB565_BE To uint32_t RGB888_BE*/
extern unsigned int RGB565_BE_To_RGB888_BE(unsigned int RGB565_BE);


#endif /*__RGB_CONVERT_H__*/
